//RegistroMotorista.java
//Classe com as operações do registro do motorista
package dao;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import modelo.Motorista;

/**
 * @author Diego Heusser
 * @author Eder Heusser
 */
public class RegistroMotorista extends Motorista {

    private int indentificador;
    private int proximo;
    private int tamanho;

    public RegistroMotorista() {
        this.tamanho = 252;
    }

    public int getTamanho() {
        return tamanho;
    }

    public void setTamanho(int tamanho) {
        this.tamanho = tamanho;
    }

    public int getIndentificador() {
        return indentificador;
    }

    public void setIndentificador(int indentificador) {
        this.indentificador = indentificador;
    }

    public int getProximo() {
        return proximo;
    }

    public void setProximo(int proximo) {
        this.proximo = proximo;
    }

    public void ler(RandomAccessFile raf) throws IOException, ParseException {
        indentificador = raf.readInt();
        id = raf.readInt();
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String data = leString(raf, 10);
        java.util.Date utilDate = new java.util.Date();
        utilDate = sdf.parse(data);
        dataNascimento = new java.sql.Date(utilDate.getTime());
        genero = leString(raf, 30);
        habilitacao = leString(raf, 30);
        nome = leString(raf, 50);
        proximo = raf.readInt();
    }

    private String leString(RandomAccessFile raf, int tamanho) throws IOException {
        char palavra[] = new char[tamanho];
        char temp;
        for (int i = 0; i < palavra.length; i++) {
            temp = raf.readChar();
            palavra[i] = temp;
        }
        return new String(palavra).replace('\0', ' ');
    }

    public void escreve(RandomAccessFile raf, int identificador, int proximo, Motorista umMotorista) throws IOException {
        raf.writeInt(identificador);
        raf.writeInt(umMotorista.getId());
        raf.writeChars(umMotorista.getDataNascimento().toString());
        raf.writeChars(umMotorista.getGenero());
        raf.writeChars(umMotorista.getHabilitacao());
        raf.writeChars(umMotorista.getNome());
        raf.writeInt(proximo);
    }
}
